The checksum is a standard approach to validate the correctness of data in a storage device or over a communication channel. Checksums are used in many networking protocols to ensure that data is not corrupted during transmission over a network. For example, transport protocols such as User Datagram Protocol (UDP), Transmission Control Protocol (TCP), Datagram Congestion Control Protocol (DCCP), and Stream Control Transmission Protocol (SCTP), which send data in packets, utilize a checksum calculation as an integral part of the protocol operation. Such protocols typically provide for a checksum in each packet with the checksum being calculated by summing the entire packet data by bytes or words.
The typical way of calculating checksums for the packets is to sum in a certain way bytes of the outgoing packet or its portion in the transport protocol layer just before transmission of the packet. These checksum calculations are processor-intensive, and must also be run concurrently with other active tasks that time-share the CPU.
The high checksum processing requirements and concurrent execution increases the peak computation rate requirement of the system executing the networking stack, which in turn, increases the system's power consumption and heat dissipation requirements. Power and heat are concerns for all electronic devices and are of particular concern in battery-powered mobile devices.
Further, when the processor cannot keep up with the processing, output processing of the packets and other concurrent processes are slowed, which in turn may negatively impact important characteristics of the communication path such as round-trip-time. There is always a need for improved processing performance.